package com.smedi.ismedi.progress.core.domain.repository;

import com.smedi.ismedi.constructionproject.api.dto.response.ProjectBasicResponse;
import com.smedi.ismedi.constructionproject.api.dto.response.resp.ProjectResp;
import com.smedi.ismedi.web.starter.common.PaginationData;
import com.smedi.ismedi.web.starter.common.ResponseData;

import java.util.List;

/**
 * @Author Cookie
 * @Date 2022/7/18
 */
public interface ProgressProjectRepository {

    /**
     * 获取项目信息列表
     * @return
     * @param offset
     * @param pageSize
     * @param projectName
     * @param projectCode
     * @param projectManager
     * @param hrOrganizationId
     * @param supervisionUnit
     * @param projectStatus
     * @param projectCategory
     * @param contractDurationBegin
     * @param contractDurationEnd
     */
    ResponseData<PaginationData> getProjectList(Long offset, Long pageSize, String projectName, String projectCode, String projectManager, Long hrOrganizationId, String supervisionUnit, String projectStatus, String projectCategory, String contractDurationBegin, String contractDurationEnd);

    /**
     * 获取项目id获取项目信息
     */
    ProjectBasicResponse getProject(Long projectId);

    ResponseData<List<ProjectBasicResponse>> getProjectList(Long hrOrganizationId);

    ResponseData<List<ProjectBasicResponse>> getQueryProjectBasicListByHrOrganizationIds(List<Long> hrOrganizationIds);
    /**
     * 获取项目信息
     * @return
     * @param projectId
     */
    ResponseData<ProjectBasicResponse> getQueryProjectBasicView(Long projectId);

    /**
     * 查询 项目 列表
     * @param ids
     */
    List<ProjectResp> getProjectListWithoutToken(List<Long> ids);

    /**
     * 根据项目名称/项目经理名称查项目
     * @param appSearch
     * @return
     */
    ResponseData<List<ProjectBasicResponse>> getProjectListByApp(String appSearch,List<Long> ids);
}
